package com.hst.capacity.infra.convertor;

import com.hst.capacity.domain.model.entity.order.base.BaseOrderEntity;
import com.hst.capacity.domain.model.entity.order.job.JobPlatformEntity;
import com.hst.capacity.domain.model.entity.order.job.ExpressTaskEntity;
import com.hst.capacity.domain.model.entity.order.job.IntercityTaskEntity;
import com.hst.capacity.domain.model.entity.order.job.SpecialTaskEntity;
import com.hst.capacity.domain.model.request.job.JobPlatformParam;
import com.hst.capacity.domain.model.response.job.JobPlatformVO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface JobPlatformConvertor {

    JobPlatformConvertor INSTANCE = Mappers.getMapper(JobPlatformConvertor.class);

    JobPlatformEntity convertEntity(JobPlatformParam param);
    JobPlatformVO convertView(JobPlatformEntity entity);

    JobPlatformEntity convertJobPlatformEntity(BaseOrderEntity order);

    ExpressTaskEntity convertJobPlatformExEntity(JobPlatformEntity task);
    IntercityTaskEntity convertJobPlatformIcEntity(JobPlatformEntity task);
    SpecialTaskEntity convertJobPlatformSpEntity(JobPlatformEntity task);
}
